package models

import (
	"time"

	"gorm.io/gorm"
)

// MaWechatRate [...]
type MaWechatRate struct {
	ID              int       `gorm:"autoIncrement:true;primaryKey;column:id;type:int;not null" json:"id" json_old:"ID"`
	UniqueID        string    `gorm:"column:unique_id;type:varchar(50);not null;default:1;comment:用户唯一标识ID" json:"unique_id" json_old:"UniqueID"`
	Type            int       `gorm:"column:type;type:tinyint(1);not null;default:0;comment:1微信 2支付宝" json:"type" json_old:"Type"`
	OutTradeNo      string    `gorm:"unique;column:out_trade_no;type:varchar(50);not null;comment:购买订单号" json:"out_trade_no" json_old:"OutTradeNo"`
	SalesID         string    `gorm:"index:idx_SalesID_AddTime,priority:1,type:btree;column:sales_id;type:varchar(50);not null;comment:机器名称" json:"sales_id" json_old:"SalesID"`
	RobotName       string    `gorm:"column:robot_name;type:varchar(50);comment:机器人名称" json:"robot_name" json_old:"RobotName"`
	GoodsID         string    `gorm:"column:goods_id;type:bigint;default:null" json:"goods_id" json_old:"GoodsID"`
	Count           int       `gorm:"column:count;type:int;not null;comment:购买次数" json:"count" json_old:"Count"`
	AddTime         time.Time `gorm:"index:AddTime;index:idx_SalesID_AddTime,priority:2,type:btree;column:add_time;type:datetime;not null" json:"-" json_old:"-"`
	AddTimeFormated string    `gorm:"-"  json:"add_time" json_old:"AddTime"`
	CreatedAt       int64     `gorm:"index:created_at;column:created_at;autoCreateTime;type:int;size:64;comment:创建时间" json:"created_at"`
}

func (m *MaWechatRate) AfterFind(tx *gorm.DB) (err error) {
	if !m.AddTime.IsZero() {
		AddTimeByte, _ := DateTime(m.AddTime).MarshalDateTime()
		m.AddTimeFormated = string(AddTimeByte)
	}
	return
}

// TableName get sql table name.获取数据库表名
func (m MaWechatRate) TableName() string {
	return "ma_wechat_rate"
}

// 模式自动注册
func init() {
	Models = append(Models, &MaWechatRate{})
}
